package com.xujie.sportsmeeting.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 团体成绩统计实体
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("team_score_statistics")
public class TeamScoreStatistics implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 统计ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 统计类型 1-按院系 2-按班级
     */
    @TableField("statistics_type")
    private Integer statisticsType;

    /**
     * 团体名称(院系名称或班级名称)
     */
    @TableField("team_name")
    private String teamName;

    /**
     * 院系名称
     */
    @TableField("department")
    private String department;

    /**
     * 班级名称
     */
    @TableField("class_name")
    private String className;

    /**
     * 总得分
     */
    @TableField("total_score")
    private BigDecimal totalScore;

    /**
     * 男子得分
     */
    @TableField("male_score")
    private BigDecimal maleScore;

    /**
     * 女子得分
     */
    @TableField("female_score")
    private BigDecimal femaleScore;

    /**
     * 参赛人数
     */
    @TableField("participant_count")
    private Integer participantCount;

    /**
     * 男子参赛人数
     */
    @TableField("male_participant_count")
    private Integer maleParticipantCount;

    /**
     * 女子参赛人数
     */
    @TableField("female_participant_count")
    private Integer femaleParticipantCount;

    /**
     * 获得金牌数
     */
    @TableField("gold_medal_count")
    private Integer goldMedalCount;

    /**
     * 获得银牌数
     */
    @TableField("silver_medal_count")
    private Integer silverMedalCount;

    /**
     * 获得铜牌数
     */
    @TableField("bronze_medal_count")
    private Integer bronzeMedalCount;

    /**
     * 总排名
     */
    @TableField("total_ranking")
    private Integer totalRanking;

    /**
     * 男子排名
     */
    @TableField("male_ranking")
    private Integer maleRanking;

    /**
     * 女子排名
     */
    @TableField("female_ranking")
    private Integer femaleRanking;

    /**
     * 统计时间
     */
    @TableField("statistics_time")
    private LocalDateTime statisticsTime;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
